package org.study.tk.boot.newcommon;

import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Service 接口基类
 *
 * @author Administrator
 */
public interface BaseDeleteService<T, PK> {
    /**
     * 根据实体属性作为条件进行删除，查询条件使用等号
     *
     * @param record
     * @return
     */
    int delete(T record);

    /**
     * 根据主键字段进行删除，方法参数必须包含完整的主键属性
     *
     * @param id
     * @return
     */
    int deleteByPrimaryKey(PK id);

    /**
     * 根据主键字符串进行删除，类中只有存在一个带有@Id注解的字段
     *
     * @param ids 如 "1,2,3,4"
     * @return
     */
    int deleteByIds(String ids);

    /**
     * 根据主键字符串进行删除，类中只有存在一个带有@Id注解的字段
     *
     * @param idList
     * @return
     */
    int deleteByIdList(@Param("idList") List<PK> idList);

    /**
     * 根据Condition条件删除数据
     *
     * @param condition
     * @return
     */
    int deleteByCondition(Object condition);
}
